package com.rambler.common.utils;

import java.net.URI;
import java.net.URISyntaxException;

/**
 * @author suhao
 * @date 2025/8/20
 * @description
 */
public class URLUtil {
    /**
     * 提取 URL 中的 host
     * @param url 完整 URL
     * @return host
     */
    public static String extractHost(String url) {
        if (url == null || url.trim().isEmpty()) {
            return null;
        }

        String temp = url.trim();

        // 如果没有 scheme，补充 http://
        if (!temp.matches("^[a-zA-Z][a-zA-Z0-9+.-]*://.*")) {
            temp = "http://" + temp;
        }

        try {
            URI uri = new URI(temp);
            String host = uri.getHost();

            // 处理 IPv6 地址情况（URI 会带中括号）
            if (host != null && host.startsWith("[") && host.endsWith("]")) {
                host = host.substring(1, host.length() - 1);
            }

            return host;
        } catch (URISyntaxException e) {
            return null;
        }
    }
}
